using System;
using Windows.UI.Xaml;
namespace System.Windows.Interactivity
{
	/// <summary>
	/// Represents an attachable object that encapsulates a unit of functionality.
	/// </summary>
	/// <typeparam name="T">The type to which this action can be attached.</typeparam>
	public abstract class TriggerAction<T> : TriggerAction where T : DependencyObject
	{
		/// <summary>
		/// Gets the object to which this <see cref="T:System.Windows.Interactivity.TriggerAction`1" /> is attached.
		/// </summary>
		/// <value>The associated object.</value>
		protected new T AssociatedObject
		{
			get
			{
				return (T)((object)base.AssociatedObject);
			}
		}
		/// <summary>
		/// Gets the associated object type constraint.
		/// </summary>
		/// <value>The associated object type constraint.</value>
		protected sealed override Type AssociatedObjectTypeConstraint
		{
			get
			{
				return base.AssociatedObjectTypeConstraint;
			}
		}
		/// <summary>
		/// Initializes a new instance of the <see cref="T:System.Windows.Interactivity.TriggerAction`1" /> class.
		/// </summary>
		protected TriggerAction() : base(typeof(T))
		{
		}
	}
}
